﻿using FB.Membership.Annotations;
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace FB.Security.HRIS
{
    public enum Menu : int
    {
        [Description("Employee Info")]
        EmployeeInfo = 110,
        [Description("Application Setting")]
        AppSetting = 120,
        [Description("Payroll Info")]
        PayrollInfo = 130,
        //[Description("Membership Control")]
        //MembershipControl = 140,
        [Description("Worksheet")]
        Worksheet = 150,
        [Description("Leave Info")]
        LeaveInfo = 1000,
        [Description("Attendance Management")]
        Attendance = 1100,
        [Description("Reporting")]
        Reporting = 1200,
        [Description("Announcement Management")]
        Announcement = 1300,
        [Description("Org Chart")]
        OrgChart = 2000
    }




    #region OrgChart
    [SecurityFlag((int)Menu.OrgChart)]
    public enum OrgChart : long
    {
        [Description("檢視")]
        View = 1,
        //修改 = 2,
        //新增 = 4
    }
    #endregion

    #region Employee
    [SecurityFlag((int)Menu.EmployeeInfo)]
    public enum EmployeeInfo : long
    {
        [Description("檢視")]
        View = 1,
        [Description("修改")]
        Edit = 2,
        [Description("新增")]
        Create = 4,
        [Description("匯出員工資料")]
        ExportEmployeeInfo = 8,
    }
    #endregion

    #region AppSetting
    [SecurityFlag((int)Menu.AppSetting)]
    public enum AppSetting : long
    {
        [Description("檢視")]
        View = 1,
        //修改 = 2,
        //新增 = 4
    }
    #endregion

    #region Payroll
    //[SecurityFlag((int)Menu.PayrollInfo)]
    //public enum PayrollInfo : long
    //{
    //    [Description("檢視")]
    //    View = 1,
    //    //修改 = 2,
    //    //新增 = 4
    //}
    #endregion

    #region Leave
    [SecurityFlag((int)Menu.LeaveInfo)]
    public enum LeaveInfo : long
    {
        [Description("檢視")] View = 1,
        [Description("檢視 - 部門")] ViewDept = 2,
        [Description("檢視 - 所有用戶")] ViewAll = 4,
        //8  [backup]
        [Description("搜尋")] Search = 16,
        [Description("假期申請")] Create = 32,
        [Description("取消申請")] Cancel = 64,
        [Description("拒绝申請")] Reject = 128,
        [Description("部門批核")] DeptApprove = 256,
        [Description("人事部批核")] HRApprove = 512,
        [Description("假期管理 - 新增假期資料")] HRCreate = 1024,
        [Description("假期管理 - 删除假期資料")] HRDelete = 2048,
        [Description("假期管理 - 修改假期資料")] HREdit = 4096,
        [Description("員工假期概要")] LeaveSummary = 8192,
        [Description("月曆模式")] CalendarView = 16384,
        [Description("月曆模式 - 部門")] CalendarViewDepartment = 32768,
        [Description("月曆模式 - 所有")] CalendarViewAll = 65536,
        [Description("批核記錄")] ApprovalLog = 131072,
        [Description("備註 - 檢視")] Remark = 262144,
        [Description("備註 - 新增")] RemarkCreate = 524288,
        [Description("月曆模式 - 分享管理")] CalendarViewSharing = 1048576,
    }
    #endregion

    #region Attendance

    [SecurityFlag((int)Menu.Attendance)]
    public enum Attendance : long
    {
        [Description("檢視")]
        View = 1,

        [Description("檢視所有用戶")]
        ViewAll = 2,

        [Description("備註 - 修改")]
        Edit = 4,
    }

    #endregion

    #region Reporting
    [SecurityFlag((int)Menu.Reporting)]
    public enum Reporting : long
    {
        [Description("員工人數報表")]
        HeadCountReport = 2,
        [Description("員工變動報告")]
        EmployeeMovementsReport = 4,
    }
    #endregion

    #region Worksheek

    [SecurityFlag((int)Menu.Worksheet)]
    public enum Worksheet : long
    {
        [Description("檢視")]                 View = 1,
        [Description("部門檢視")]   ViewDept = 2,
        [Description("檢視所有用戶")] ViewAll = 4,


        [Description("新增工作清單")]        Create = 16,
        [Description("修改工作清單")]        Edit = 32,
        [Description("取消工作清單")]        Cancel = 64,
        //[Description("提交工作清單到部門主管")]       SubmitToDept = 128,
        [Description("提交工作清單到人事部")]         SubmitToHR = 256,
        [Description("批核工作清單")]        Approve = 512,
        


        
    }

    #endregion


    #region Announcement

    [SecurityFlag((int)Menu.Announcement)]
    public enum Announcement : long
    {
        [Description("檢視")]
        View = 1,

        [Description("檢視所有用戶")]
        ViewAll = 2,

        [Description("新增")]
        Create = 4,

        [Description("修改")]
        Edit = 8,

        [Description("簽收報表")]
        SignatureReport = 16,
    }

    #endregion


    

}
